<?php

/**************************************************************************
* Source File	:  MembreMySQL.php
* Author        :  Amodeos - Herleman - Kuete
* Project name  :  Gestion Annuaire des anciens de l'UM2
* Modified   	:  18/05/2010
* Description	:  Definition de la classe MembreMySQL qui herite de la classe Membre
**************************************************************************/

//include
include 'Membre.php';
//include("FabriqueMySQL.php");
//include ("Connection.php");
include ("PosteMySQL.php");


class MembreMySQL  extends Membre			
{
	//Attributes
	private $idMembre;	//L'identifiant de l'objet de classe Membre
	private static $listeMembres = array();	//La liste des membres
	
	
	 //Constructeurs
//	public function MembreMySQL ($idMembre, $nom, $prenom, $fixe, $telPro, $dateNaiss, $rue, $ville, $cp, $idFacebook, $idTwit, $postes) {
//		parent::Membre ($nom, $prenom, $fixe, $telPro, $dateNaiss, $rue, $ville, $cp, $idFacebook, $idTwit, $postes);
//		$this -> idMembre = $idMembre;
//	}
	
	
	
	//Accesseurs et Modificateurs
	public function getIdMembre() {
		return $this -> idMembre;
	}
		
	
	public function setIdMembre($idMembre) {
		$this -> idMembre = $idMembre;
	}
	
	
	
	//Methodes importees de InterfaceSLD
	public function save () {
		$nom =  $this->getNom();
		$prenom =  $this->getPrenom();
		$telFixe =  $this->getTelFixe();
		$telPro =  $this->getTelPro();
		$dateDeNaissance =  $this->getDateDeNaissance();
		$rue =  $this->getAdresseRue();
		$ville = $this->getAdresseVille();
		$cp = $this->getAdresseCp();
		
		$bdd = Connection::getInstance();
		
		try {
			if (empty($this->idMembre)) {	//Il s'agit d'une creation d'un nouveau membre en BD
				//Enregistrement en BD
				$count = $bdd->exec("INSERT INTO MEMBRE VALUES (NULL, $nom, $prenom, $telFixe, $telPro, $dateDeNaissance, $rue, $ville, $cp");
				//Recuperation de l'identifiant genere
				$id = $bdd->lastInsertId();
				$this->idMembre = $id;
				//Enregistrement dans la liste des membres
				$listeMembres[] = $this;
			}
			else {	//Il s'agit d'une mise a jour de la BD
				$requete = "UPDATE MEMBRE 
										SET NOM='$nom', PRENOM='$prenom' , TEL_FIXE='$telFixe', TEL_PRO='$telPro', DATEDENAISSANCE='$dateDeNaissance', ADRESSERUE='$rue', ADRESSEVILLE='$ville', ADRESSECP='$cp'
										WHERE UID=$this->idMembre";
				$reponse = $bdd->query($requete);
				if(!$reponse) {
					echo "<br><br>";
					echo "ERREUR REQUETE<br>";
					echo $requete;
				}
			}
		}
		catch (PDOException $erreur) {
			echo 'Erreur : '. $erreur->getMessage();
		}
		
		
		
		
				
	}
	
	public function load () {
		$bdd = Connection::getInstance();

		$reponse = $bdd->query("SELECT * FROM MEMBRE WHERE UID=$this->idMembre");
		$donnees = $reponse->fetch();
		$this->setNom($donnees['NOM']);
		$this->setPrenom($donnees['PRENOM']);
		$this->setTelFixe($donnees['TEL_FIXE']);
		$this->setTelPro($donnees['TEL_PRO']);
		$this->setDateDeNaissance($donnees['DATEDENAISSANCE']);
		$this->setAdresseRue($donnees['ADRESSERUE']);
		$this->setAdresseVille($donnees['ADRESSEVILLE']);
		$this->setAdresseCp($donnees['ADRESSECP']);
		$this->setIdFacebook($donnees['IDFACEBOOK']);
		$this->setIdTwitter($donnees['IDTWITTER']);
		$this->setPostes(PosteMySQL::loadListe($donnees['UID']));
		$reponse->closeCursor();
	}
	
	public function delete () {
		//A implementer
	}

	
	
	/**
	 * Fonction statique permettant de recuperer la liste des membres dans 
	 * la base de donnees, et de retourner cette liste sous forme de tableau
	 */
	public static function getListeMembres () {
		if ( (sizeof(self::$listeMembres)) == 0 ) {
			$listeMemb = array();
			$bdd = Connection::getInstance();
			
			$reponse = $bdd->query("SELECT * FROM MEMBRE");
			$donnees = $reponse->fetch();
			
			while ($donnees) {
				//Creation de l'objet MembreSQL
				$membre = new MembreMySQL();
				$membre->idMembre = $donnees['IDMEMBRE'];
				$membre->setNom($donnees['NOM']);
				$membre->setPrenom($donnees['PRENOM']);
				$membre->setTelFixe($donnees['TEL_FIXE']);
				$membre->setTelPro($donnees['TEL_PRO']);
				$membre->setDateDeNaissance($donnees['DATEDENAISSANCE']);
				$membre->setAdresseRue($donnees['ADRESSERUE']);
				$membre->setAdresseCp($donnees['ADRESSECP']);
				$membre->setAdresseVille($donnees['ADRESSEVILLE']);
				$membre->setIdFacebook($donnees['IDFACEBOOK']);
				$membre->setIdTwitter($donnees['IDTWITTER']);
				//Ajout de l'objet dans la liste des Membres
				$listeMemb[] = $membre;
				//Element suivant
				$donnees = $reponse->fetch();
			}
			self::$listeMembres = $listeMemb;
			$reponse->closeCursor();
		}
		
		//On a recuperer tous les membres de la BDD
		
		return self::$listeMembres;
	}
	
	

} // End Class MembreMySQL


//Test des fonctions
//$listeMemb = MembreMySQL::getListeMembres();
////echo 'Taille = '. sizeof($listeMemb) .'<br>';
////print_r($listeMemb);
//$listeMemb = MembreMySQL::getListeMembres();
//print_r($listeMemb);



?>

